<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // 封装 计算任意两个个位数之间所有数字，两两组合，能组合成哪些奇数，放在数组中，返回出来 函数
  function fn(a, b){
    if(a > b){
      var x = a;
      a = b;
      b = x;
    }

    var arr = [];
    for(var i=a;i<=b;i++){
      for(var j=a;j<=b;j++){
        if( (i+""+j)%2 ){
          arr.push(i+""+j);
        }
      }
    }
    return arr;
  }
  // console.log(fn(1, 3));
  // console.log(fn(3, 1));

  // 数组去重
  // 依次取出每个数据后之后的所有数据作比较，发现重复，删除
  function norepeat(a){
    // 深拷贝数组
    // var aa = a.slice(0);
    // var aa = a.map(function(val){return val});
    // var aa = a.filter(function(){return true});

    for(var i=0;i<a.length;i++){
      for(var j=i+1;j<a.length;j++){
        if(arr[i] === arr[j]){
          // 删除数组内指定位置数据后，该位置后面的数据会自动补上
          arr.splice(j, 1);
          // 为了保证索引正确，不受数组塌陷的影响，手动将索引向前一次还原
          j--;
        }
      }
    }
  }
  // var arr = [1,2,3,3,2,1,1,1,2,3,3,3];
  // console.log(arr);
  // norepeat(arr);
  // console.log(arr);

  // 封装 将数组内所有数据增加30%的 函数
  function map(a){
    // a.forEach(function(val, idx, self){
    //   self[idx] = val * 1.3;
    // })
    return a.map(function(a){
      return a * 1.3;
    })
  }
  // var arr = [1,2,3,4];
  // console.log(arr);
  // var res = map(arr);
  // console.log(res)
  // console.log(arr);


  // 封装函数，根据指定数据，查询数组中是否存在该数据，如果存在，返回存在个数，如果不存在，返回false
  function count(a, d){
    // 用来记录要查询的数据出现的次数
    var c = 0;
    // 遍历数组
    a.forEach(function(val){
      // 判断数组中的数据是否和要查询的数据相同
      if(val === d){
        // 记录
        c++;
      }
    })
    // 如果计数器没有改变，说明没有找到重复的
    // 如果计数器不是初始值，说明计时器被改变了，说明找到重复的了
    if( c ){
      return c
    }else{
      return false
    }
  }
  // var arr = [1,2,3,3,2,1,1,1,2,3,3,3];
  // console.log(arr);
  // var res = count(arr, 3);
  // var res = count(arr, 4);
  // console.log(arr);
  // console.log(res);


  // 现有一个排好序的都是数值的数组，插入一个新数据，要求不影响原排序，封装函数实现
  function insert(a, d){
    // a.push(d);
    // a.sort(function(a,b){
    //   return a-b;
    // })
    // 通过判断，找到，要插入的数据第一次小于数组中某个数据的位置
    for(var i=0;i<a.length;i++){
      if(d < a[i]){
        break;
      }
    }
    // 从数组的最后，依次到要插入新数据的位置，整体向后移动一位
    for(var j=a.length-1;j>=i;j--){
      a[j+1] = a[j];
    }
    // 将新数据，插入到指定位置
    a[i] = d;
  }
  // var arr = [2,4,6,7,8];
  // console.log(arr);
  // insert(arr, 6);
  // console.log(arr);




  
</script>
</html>